using System.Collections.Generic;

namespace Wayloop.Fusion.Core.Objects
{
    public class Project : FusionObject<int>
    {
        protected Client client;
        protected string name;
        protected string description;
        protected IList<ProjectRelease> releases;
        protected IList<ProjectVersion> versions;
        protected IList<Task> tasks;

        public virtual Client Client
        {
            get { return client; }
            set { client = value; }
        }

        public virtual string Name
        {
            get { return name; }
            set { name = value; }
        }

        public virtual string Description
        {
            get { return description; }
            set { description = value; }
        }

        public virtual IList<ProjectRelease> Releases
        {
            get { return releases; }
            set { releases = value; }
        }

        public virtual IList<ProjectVersion> Versions
        {
            get { return versions; }
            set { versions = value; }
        }

        public virtual IList<Task> Tasks
        {
            get { return tasks; }
            protected set { tasks = value; }
        }


        public Project()
        {
            tasks = new List<Task>();
        }


        public override int GetHashCode()
        {
            return GetHashCode(Client, Name, Description);
        }
    }
}